package com.mo.demo;

import java.util.Date;

public class MyCache2 {

    /**
     * 查询用户id为1 的数据
     */
    public User get(){

        // 要获取哪个用户的数据，id是多少
        String id = "1";

        // 先从缓存中获取
        User user = CacheHolder.get(id);

        // 缓存中已有，则直接返回
        if(user != null ){
            return user;
        }
        // 从数据库中获取
        User userInDb = getFromDatabase(id);

        // 回写缓存，这样下次可以直接从缓存中获取
        CacheHolder.put(id,userInDb);

        return userInDb;

    }



    /**
     * 模拟从数据库获取用户数据
     * @return
     */
    private User getFromDatabase(String id) {
        return new User(){{
            setId(id);
            setName("随机名."+ new Date().getTime());
        }};
    }
}
